using Blog2025.Application.Common;
using Blog2025.Application.Dto;

namespace Blog2025.Application.Services;
public interface IUserAppServices
{
    Task<dynamic> GetAllAsync(PageRequestDto pageRequestDto);
    Task<UserDto> GetByIdAsync(Guid id);
    Task CreateAsync(CreateUserDto dto);
    Task UpdateAsync(Guid id, UpdateUserDto dto);
    Task DeleteAsync(Guid id);
    Task EnableAsync(Guid id);
    Task<ApiResult> DisableAsync(Guid id);
    Task AssignRoleAsync(Guid userId, Guid roleId);
    Task RemoveRoleAsync(Guid userId, Guid roleId);
    Task UpdateAvatarAsync(Guid userId, string avatarUrl);
    Task UpdateNicknameAsync(Guid userId, string nickname);
    Task ChangePasswordAsync(Guid userId, string oldPwd, string newPwd);

    // 过滤器
    Task<dynamic> GetFilterAsync(Dictionary<string ,object> filters);
}